package com.xy.webadmin.app.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.util.Date;
import java.util.Map;

/**
 * 公司数据源VO视图对象。
 *
 * @author xiaoyue
 * @date 2025-05-13
 */
@Schema(description = "公司数据源VO视图对象")
@Data
public class CompanyConfigVo {

    /**
     * 公司。
     */
    @Schema(description = "公司")
    private Long companyId;

    /**
     * 阿里云短信KeyId。
     */
    @Schema(description = "阿里云短信KeyId")
    private String smsAccessKeyId;

    /**
     * 阿里云短信Key密钥。
     */
    @Schema(description = "阿里云短信Key密钥")
    private String smsAccessKeySecret;

    /**
     * 阿里云全局接入点域名。
     */
    @Schema(description = "阿里云全局接入点域名")
    private String smsEndpoint;

    /**
     * 邮件服务器域名。
     */
    @Schema(description = "邮件服务器域名")
    private String emailHost;

    /**
     * 邮件服务器端口。
     */
    @Schema(description = "邮件服务器端口")
    private String emailPort;

    /**
     * 邮箱用户名。
     */
    @Schema(description = "邮箱用户名")
    private String emailUsername;

    /**
     * 邮件授权码。
     */
    @Schema(description = "邮件授权码")
    private String emailPassword;

    /**
     * 企业微信ID。
     */
    @Schema(description = "企业微信ID")
    private String weworkCorpid;

    /**
     * 企业微信应用密钥。
     */
    @Schema(description = "企业微信应用密钥")
    private String weworkCorpsecret;

    /**
     * 企业微信应用ID。
     */
    @Schema(description = "企业微信应用ID")
    private String weworkAgentId;

    /**
     * 企业微信公众号跳转根URL。
     */
    @Schema(description = "企业微信公众号跳转根URL")
    private String weworkUrl;

    /**
     * 微信公众号APPID。
     */
    @Schema(description = "微信公众号APPID")
    private String wechatAppId;

    /**
     * 微信公众号密钥。
     */
    @Schema(description = "微信公众号密钥")
    private String wechatSecret;

    /**
     * 微信公众号跳转根URL。
     */
    @Schema(description = "微信公众号跳转根URL")
    private String wechatUrl;

    /**
     * 钉钉企业ID。
     */
    @Schema(description = "钉钉企业ID")
    private String dingtalkCropId;

    /**
     * 钉钉APPKEY。
     */
    @Schema(description = "钉钉APPKEY")
    private String dingtalkAppKey;

    /**
     * 钉钉密钥。
     */
    @Schema(description = "钉钉密钥")
    private String dingtalkAppSecret;

    /**
     * 钉钉应用ID。
     */
    @Schema(description = "钉钉应用ID")
    private String dingtalkAgentId;

    /**
     * 钉钉跳转根URL。
     */
    @Schema(description = "钉钉跳转根URL")
    private String dingtalkUrl;

    /**
     * 飞书APPID。
     */
    @Schema(description = "飞书APPID")
    private String larkAppId;

    /**
     * 飞书密钥。
     */
    @Schema(description = "飞书密钥")
    private String larkAppSecret;

    /**
     * 飞书跳转根URL。
     */
    @Schema(description = "飞书跳转根URL")
    private String larkUrl;

    /**
     * 默认角色。
     */
    @Schema(description = "默认角色")
    private Long defaultRoleId;

    /**
     * 默认数据权限。
     */
    @Schema(description = "默认数据权限")
    private Long defaultDataPermId;

    /**
     * 组织架构平台。
     */
    @Schema(description = "组织架构平台")
    private Integer oaSyncPlatform;

    /**
     * 创建者ID。
     */
    @Schema(description = "创建者ID")
    private Long createUserId;

    /**
     * 更新者ID。
     */
    @Schema(description = "更新者ID")
    private Long updateUserId;

    /**
     * 创建时间。
     */
    @Schema(description = "创建时间")
    private Date createTime;

    /**
     * 更新时间。
     */
    @Schema(description = "更新时间")
    private Date updateTime;

    /**
     * companyId 字典关联数据。
     */
    @Schema(description = "companyId 字典关联数据")
    private Map<String, Object> companyIdDictMap;

    /**
     * defaultRoleId 字典关联数据。
     */
    @Schema(description = "defaultRoleId 字典关联数据")
    private Map<String, Object> defaultRoleIdDictMap;

    /**
     * defaultDataPermId 字典关联数据。
     */
    @Schema(description = "defaultDataPermId 字典关联数据")
    private Map<String, Object> defaultDataPermIdDictMap;

    /**
     * oaSyncPlatform 常量字典关联数据。
     */
    @Schema(description = "oaSyncPlatform 常量字典关联数据")
    private Map<String, Object> oaSyncPlatformDictMap;
}
